/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Logica;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import Persistencia.ADOComentario;
import java.util.LinkedList;

/**
 *
 * @author NachoB
 */
public class Accion {
    private int id;
    private String nombre;
    private String usuario; //hasta que la seccion de usuarios sea creada
    private String descripcion;
    private int estado;
    private LinkedList<Comentario> comentar;
    private  Date fechaCreacion;// = new java.sql.Date(0); con esto se instanciaria
    private Date fechaVencimiento;
    
    public Accion ( String pNombre, String pDescripcion, String pUsuario ){
     nombre=pNombre;
     descripcion= pDescripcion;
     usuario=pUsuario;
     /*EL id es autoincrementable por lo tanto no lo tiene cuando se crea el obj
      * se usa el metodo setId para asignarle un id
      */
    }

    public LinkedList<Comentario> getComentario() {
        return comentar;
    }
    public void setComentarios(LinkedList comentarios) {
        this.comentar = comentarios;
    }
    public boolean addComentario(Comentario com)
    {
        return getComentario().add(com);
        //return comentar.add(com);
    }
    public void limpiarLista()
    {
        comentar.clear();
    }
    
    public void comentarioAccion()
    {
        ADOComentario adocom= new ADOComentario();
        Iterator iter=comentar.iterator();
        Comentario com=null;
        while(iter.hasNext())
        {
            com=(Comentario) iter.next();            
	    adocom.insertarComentario(com);
	}
    }
    
    public String mostrarListaComentario()
    {
        Iterator iter=comentar.iterator();
        Comentario com=null;
        String cadena="";
        int numerin=0;
        while(iter.hasNext())
        {
            numerin++;
            com=(Comentario) iter.next();            
	    cadena+="Comentario "+numerin+ ": "+com.getDescripcion()+"\n";
	}
        return cadena;
    }

    public int getEstado() {
        return estado;
    }
    public void setEstado(int estado) {
        this.estado = estado;
    }    

    public Date getFechaCreacion() {
        return fechaCreacion;
    }
    public String getFechaCreacionString(){
   
    java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd");
    String fecha = sdf.format(fechaCreacion);
    return fecha;
    }

    public void setFechaCreacion(String fechaCreacion) {
        
      try{
        DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
        this.fechaCreacion =  df.parse(fechaCreacion);  
      }
      catch (Exception e){
         e.printStackTrace();
      }
    }

    public Date getFechaVencimiento() {
        return fechaVencimiento;
    }
    public String getFechaVencimientoString(){
   
    java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd");
    String fecha = sdf.format(fechaVencimiento);
    return fecha;
    }


    public void setFechaVencimiento(String fechaVencimiento) {
        try{
        DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
        this.fechaVencimiento =  df.parse(fechaVencimiento);  
      }
      catch (Exception e){
         e.printStackTrace();
      }
    }

    
    public Accion(){
        comentar=new LinkedList();
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public int getId() {
        return id;
    }

    public String getNombre() {
        return nombre;
    }

    public String getUsuario() {
        return usuario;
    }

    public String getDescripcion() {
        return descripcion;
    }
  
    
    public String invertirCadena(String cadena){
      String[]   retorno = cadena.split("-");
      String aux = retorno[0];
      retorno[0] = retorno [2];
      retorno[2] = aux;
         
        return retorno[0]+"-"+retorno[1]+"-"+retorno[2];
     }
    
    /* toma la feche de la bd, que es en yyyy-mm-dd y la pasa a dd-mm-YYYY*/
    public void setFechaCreacionInvertida(String fechac){
       try{
        DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
        this.fechaCreacion =  df.parse(this.invertirCadena(fechac));  
      }
      catch (Exception e){
         e.printStackTrace();
      }
    }
    
    public void setFechaVencimientoInvertida(String fechac){
       try{
        DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
        this.fechaVencimiento =  df.parse(this.invertirCadena(fechac));  
        
      }
      catch (Exception e){
         e.printStackTrace();
      }
    }
    /* complemento necesario del metodo set invertida*/
    public String getFechaVencimientoStringInvertida(){
   
    java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("dd-MM-yyyy");
    String fecha = sdf.format(fechaVencimiento);
    return fecha;
    }
    public String getFechaCreacionStringInvertida(){
   
    java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("dd-MM-yyy");
    String fecha = sdf.format(fechaCreacion);
    return fecha;
    }
     
    
    
    
   
}
